// es6 ts 类型
const az_name: string = "azyyz"; // 字符串类型
const age: number = 25; // 数字类型
const male: boolean = false; // 布尔类型
const undef: undefined = undefined; // undefined 类型
const nul: null = null; // null 类型
const obj: object = { az_name, age, male }; // 对象类型
const bigintVar1: bigint = 128937189241289471289n; // bigint 字符'n'結尾
const bigintVar2: bigint = BigInt(12893712893712893); // 类似 String(123);
const symbolVar: symbol = Symbol("unique"); // symbol es6新类型, 声明唯一值;

// void 类型
void function iife() {
  console.log("返回undefined");
};

// 数组的类型标注
const arr1: string[] = [];
// || || || 两种声明类型结果想同
const arr2: Array<string> = [];

const arr3: string[] = ["az", "yyz"];
console.log(arr3[599]);

// 对象的类型标注
interface IDescription {
  name: string;
  age: number;
  // '?' 可选
  male?: boolean;
  face?: boolean;
}
const obj1: IDescription = {
  name: "azyyz",
  age: 999,
  male: false,
  face: false,
};

console.log(obj1.age);

// object \ Object \ {} || 关闭 strictNullChecks
// TS '{}' 类型 包含所有原始类型和对象类型 (所有类型)
const objo1: {} = undefined;
